import request from '@/utils/request'

// 排班管理API

/**
 * 获取排班列表
 * @param {Object} params 查询参数
 */
export function getScheduleList(params = {}) {
  return request({
    url: '/schedule',
    method: 'get',
    params
  })
}

/**
 * 根据ID获取排班详情
 * @param {number} id 排班ID
 */
export function getScheduleById(id) {
  return request({
    url: `/schedule/${id}`,
    method: 'get'
  })
}

/**
 * 创建排班
 * @param {Object} data 排班数据
 */
export function createSchedule(data) {
  return request({
    url: '/schedule',
    method: 'post',
    data
  })
}

/**
 * 更新排班信息
 * @param {number} id 排班ID
 * @param {Object} data 排班数据
 */
export function updateSchedule(id, data) {
  return request({
    url: `/schedule/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除排班
 * @param {number} id 排班ID
 */
export function deleteSchedule(id) {
  return request({
    url: `/schedule/${id}`,
    method: 'delete'
  })
}

/**
 * 自动排班
 * @param {string} startDate 开始日期
 * @param {string} endDate 结束日期
 */
export function autoSchedule(startDate, endDate) {
  return request({
    url: '/schedule/auto',
    method: 'post',
    params: { startDate, endDate }
  })
}

/**
 * 获取员工排班表视图
 * @param {number} employeeId 员工ID
 * @param {string} startDate 开始日期
 * @param {string} endDate 结束日期
 */
export function getEmployeeScheduleView(employeeId, startDate, endDate) {
  return request({
    url: `/schedule/employee/${employeeId}`,
    method: 'get',
    params: { startDate, endDate }
  })
}

/**
 * 获取管理员排班表视图
 * @param {string} startDate 开始日期
 * @param {string} endDate 结束日期
 */
export function getAdminScheduleView(startDate, endDate) {
  return request({
    url: '/schedule/admin',
    method: 'get',
    params: { startDate, endDate }
  })
}

/**
 * 获取排班统计信息
 * @param {string} startDate 开始日期
 * @param {string} endDate 结束日期
 */
export function getScheduleStatistics(startDate, endDate) {
  return request({
    url: '/schedule/statistics',
    method: 'get',
    params: { startDate, endDate }
  })
}